1. Field of the Invention
The present invention relates to the field of business process management, and, in particular, to a system and method for analyzing and tuning a marketing program.
2. Description of the Related Art
A business process management (BPM) engine, or workflow engine, can be used to design and implement business execution actions, such as marketing campaigns, compensation calculation models, and supply chain management. In the marketing campaign example, a marketer can use the BPM engine to configure a series of connected workflow execution components that make up a marketing campaign. Some BPM engines allow the marketer to visually design, manage, and automate a multi-stage lifecycle marketing program through a drag-and-drop user interface and a library of pre-built program templates. An example of such a BPM engine is Responsys Interact Program, an element of the Responsys Interact Marketing Cloud.
However, existing BPM engines are not aware of how stages of a marketing program are connected or of thread execution boundaries within the marketing program. In particular, the program stages do not know how they are related to each other (e.g., whether the stages are connected, how many paths there are between the stages, whether the stages are within the same execution boundary, how many incoming or outgoing paths there are for a stage, etc.), and the BPM also does not know how many different/unique paths are in the program (e.g., the number of paths a group of workflow items can traverse in the program, the number of different paths between a given start stage and end stage, etc.). As a result, such engines cannot, e.g., efficiently identify groups of workflow items input to a given stage within the same thread. For example, two or more groups of workflow items (e.g., users) may be processed along parallel paths to create distinct email messages for each group, and separate requests for launch of an email campaign may then be made after each group is processed. In such a case, multiple requests for and launches of the email campaign may be made within the same execution flow, unnecessarily burdening servers that must consume computing resources such as memory and processing cycles for each of the separate launches.